﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
  /*编写一个程序，用以接收用户输入的两个浮点型的数值，一个值表示用户想要存放在银行账户中的余额，另一个值表示用户想要从银行账户中提取的金额。
    实现存取款功能，
    用户功能选择：1、存款，2、取款
    取款时：
    当用户想要提取的金额大于余额时，请手动抛出一个ArgumentOutOfRangeException 参数超出范围的异常，异常信息可以写“取款金额大于余额，请重新输入”
    ，如此以确保取款金额始终不大于当前余额。
    操作结束，打印输出余额是多少。
    最后再添加catch一般异常 Exception，使得数据类型转换的异常也能被捕获到。
     */
    class Program1
    {
        public static float money = 0;
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("请选择你所需要的服务:1.存款    2.取款");
                float a = float.Parse(Console.ReadLine());
                switch (a)
                {
                    case 1:
                        Deposit();
                        break;
                    case 2:
                        Withdrawal();
                        break;
                    default:
                        break;
                }
            }
            Console.ReadKey();
        }
        
        static void Deposit() 
        {
            float deposit = 0;
            while (true)
            {
                try
                {
                    Console.WriteLine("请输入你要存款的数目:");
                    deposit = float.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
                    Console.WriteLine("输入的数目错误，请重新输入。");
                }
                break;
            }
            money += deposit;
            Console.WriteLine("存入的金额为:"+deposit);
            Console.WriteLine("存款总金额为:"+money);
        }
        static void Withdrawal()
        {
            Console.WriteLine("请输入你要取款的数目:");
            float withdrawal = float.Parse(Console.ReadLine());
            if (withdrawal>money)
            {
                Console.WriteLine("取款金额大于余额，请重新输入");
                throw new Exception("取款金额大于余额");
            }
            else
            {
                Console.WriteLine("取款成功");
            }
            money -= withdrawal;
            Console.WriteLine("账户剩余余额为:"+money);
        }
    }
}
